package com.service;

import com.dto.CommentsWithUserDTO;
import com.pojo.Comments;
import com.pojo.Result;
import java.util.List;

public interface CommentsService {
    // 创建评论
    Result<Comments> createComment(Comments comment);

    // 更新评论
    Result<Void> updateComment(Comments comment);

    // 删除评论
    Result<Void> deleteComment(Integer id);

    // 删除笔记的所有评论
    Result<Void> deleteCommentsByNoteId(Integer noteId);

    // 获取单个评论（包含用户信息）
    Result<CommentsWithUserDTO> getCommentById(Integer id);

    // 获取笔记的评论树（包含用户信息和嵌套结构）
    Result<List<CommentsWithUserDTO>> getCommentsTreeByNoteId(Integer noteId);

    // 获取用户的所有评论
    Result<List<Comments>> getCommentsByUserId(Integer userId);

    // 获取评论的回复（包含用户信息）
    Result<List<CommentsWithUserDTO>> getRepliesByParentId(Integer parentId);

    // 获取笔记的评论总数
    Result<Integer> getCommentCountByNoteId(Integer noteId);

    // 获取用户的评论总数
    Result<Integer> getCommentCountByUserId(Integer userId);


    Integer getUserIdByCommentId(Integer commentId);
}